home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / source / snip9503 / serial.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-14  |  5.4 KB  |  116 lines

  1. /*
  2. +----------------------------------------------------+
  3. |               Thunderbird Software                 |
  4. +----------------------------------------------------+
  5. | Filespec  :  Serial.c                              |
  6. | Date      :  October 24, 1991                      |
  7. | Time      :  15:03                                 |
  8. | Revision  :  1.1                                   |
  9. | Update    : August 29, 1994                        |
  10. | Update    : March 12, 1995 by Bob Stout            |
  11. +----------------------------------------------------+
  12. | Programmer:  Scott Andrews                         |
  13. | Address   :  5358 Summit RD SW                     |
  14. | City/State:  Pataskala, Ohio                       |
  15. | Zip       :  43062                                 |
  16. +----------------------------------------------------+
  17. | Released to the Public Domain                      |
  18. +----------------------------------------------------+
  19. */
  20.  
  21. #define  SerInBufSize  4096            /* Size of input buffer          */
  22. #define  SerOutBufSize 512             /* Size of output buffer         */
  23.  
  24. #if defined(__SC__)     /* Note: Won't work with older versions of SC/ZTC */
  25.  #include <int.h>
  26.  #define INT_ON         int_on
  27.  #define INT_OFF        int_off
  28.  #define GETVECT        _dos_getvect
  29.  #define SETVECT        _dos_setvect
  30. #elif defined(__TURBOC__)
  31.  #define INT_ON         enable
  32.  #define INT_OFF        disable
  33. #else /* assume MSC/QC or compatible */
  34.  #include <conio.h>
  35.  #define INT_ON         _enable
  36.  #define INT_OFF        _disable
  37.  #define GETVECT        _dos_getvect
  38.  #define SETVECT        _dos_setvect
  39. #endif
  40.  
  41. /* 8250 registers */
  42.  
  43. #define  REC             0             /* Uart receive reg.             */
  44. #define  XMIT            0             /* Uart transmit reg.            */
  45. #define  INT_EN          1             /* Uart int. enable reg.         */
  46. #define  INT_ID          2             /* Uart int. ident. reg.         */
  47. #define  LINE_CNTRL      3             /* Uart line control reg.        */
  48. #define  MODEM_CNTRL     4             /* Uart modem control reg.       */
  49. #define  LINE_STATUS     5             /* Uart line status reg.         */
  50. #define  MODEM_STATUS    6             /* Uart modem status reg.        */
  51. #define  BAUD_LSB        0             /* Uart baud divisor reg.        */
  52. #define  BAUD_MSB        1             /* Uart baud divisor reg.        */
  53.  
  54. #define  NONE            0             /* Handshake param none          */
  55. #define  HDW             1             /* Handshake param hardware      */
  56. #define  XON             2             /* Handshake param software      */
  57.  
  58. /* Interrupt enable register  */
  59.  
  60. #define  RX_INT          0x01          /* Receive interrupt mask        */
  61. #define  TBE_INT         0x02          /* Transmit buffer empty mask    */
  62. #define  ERR_INT         0x04          /* Error interrupt mask          */
  63. #define  RS_INT          0x08          /* Line interrupt mask           */
  64.  
  65. /* Interrupt id register      */
  66.  
  67. #define  OUT2            0x08          /* Out 2 line                    */
  68. #define  DTR             0x01          /* DTR high                      */
  69. #define  RTS             0x02          /* RTS high                      */
  70. #define  CTS             0x10
  71. #define  DSR             0x20
  72. #define  XMTRDY          0x20
  73. #define  TXR             0       /*  Transmit register (WRITE)          */
  74.  
  75. #if !defined TRUE                      /* Define boolean true/false     */
  76. #define  FALSE  0
  77. #define  TRUE   !FALSE
  78. #endif
  79.  
  80. extern void (_interrupt _far *oldvector_serial )( void);
  81.  
  82. extern int   ComBase;                  /* Comm port address             */
  83. extern int   IrqNum;                   /* Comm interrupt request        */
  84.  
  85. typedef struct                         /* Save existing comm params     */
  86. {  int int_enable;                     /* old interrupt enable reg value*/
  87.    int line;                           /*  "  line control      "    "  */
  88.    int modem;                          /* old modem control     "    "  */
  89.    int baud_lsb;                       /* old baud rate divisor LSD     */
  90.    int baud_msb;                       /*  "   "    "      "    MSD     */
  91.    int int_cntrl;                      /* old PIC interrupt reg value   */
  92. } OLD_COMM_PARAMS;
  93. extern OLD_COMM_PARAMS old_comm_params;
  94.  
  95. typedef struct
  96. {  int line;                           /* Uart line status reg.         */
  97.    int modem;                          /* Uart mode status reg.         */
  98.    int intrupt;                        /* Uart interrupt reg.           */
  99.    int handshake;                      /* Handshake status              */
  100. } COMM_STATUS;                         /* status, updated, handler      */
  101. extern COMM_STATUS comm_status;
  102.  
  103. int   OpenComPort ( char Port );         /*setup comm for usage         */
  104. void  InitComPort ( char Baud[], char Databits, char Parity, char Stop );
  105. void  CloseComPort ( void );             /* Restore comm port           */
  106. void  DropDtr ( void );                  /* Lower DTR                   */
  107. void  RaiseDtr ( void );                 /* Raise DTR                   */
  108. int   ComRecChar ( void );               /* Fetch character from rcv buf*/
  109.  
  110. int   ComSendChar ( char character );    /* Put char into xmit buffer   */
  111. int   ComSendString ( char *string );
  112. int   ComStatus ( void );                /* Fetch comm status           */
  113. void  _interrupt _far serial ( void );   /* interrupt handler           */
  114.  
  115. /* End of Serial.H */
  116.